﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CodeSaude.Domain.Validation.Base {
    public class ValidationResult {
        private readonly List<string> _errors = new List<string>();

        public string Mensagem { get; set; }
        public bool IsValid { get { return _errors.Count == 0; } }

        public IEnumerable<string> Erros { get { return this._errors; } }
        public void AdicionarErro(string error)
        {
            _errors.Add(error);
        }
        public void RemoverErro(string error)
        {
            if (_errors.Contains(error))
                _errors.Remove(error);
        }

        public void AdicionarErro(params ValidationResult[] resultadoValidacao)
        {
            if (resultadoValidacao == null) return;

            foreach (var validationResult in resultadoValidacao.Where(result => result != null))
                this._errors.AddRange(validationResult.Erros);
        }
    }
}
